<?php

namespace app\admin\controller;

use think\Controller;
use think\Request;
use app\common\model\Category;
use app\common\model\Article;

/*栏目*/

class Cate extends Common
{
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {
        //分类列表
        $cateDatas = Category::all(function ($query) {
            $query->order('cid', 'asc');
        });
        return view('', compact('cateDatas'));
    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        //添加分类
        return view();
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        //
        $data = $request->post();
        $CategoryM = new Category;
        // 调用当前模型对应的User验证器类进行数据验证
        $result = $CategoryM->validate(true)->save($data);
        if (false == $result) {
            // 验证失败 输出错误信息
            $this->error($CategoryM->getError());
        } else {
            $this->success('添加成功', '/admin/cate');
        }
    }

    /**
     * 显示指定的资源
     *
     * @param  int $id
     * @return \think\Response
     */
    public function read($id)
    {


    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int $id
     * @return \think\Response
     */
    public function edit($id)
    {
        $data = Category::get($id);
        return view('', compact('data'));
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request $request
     * @param  int $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        //
        $data = $request->post();
        //过滤方式
        unset($data['_method']);

        //验证数据
        $result = $this->validate($data, 'Category.edit');
        if (true !== $result) {
            // 验证失败 输出错误信息
            $this->error($result);
        }

        $CategoryM = new Category;
        // 调用当前模型对应的User验证器类进行数据验证
        $result = $CategoryM->validate('Category.edit')->where('cid', $id)->update($data);
        $this->success('操作成功', '/admin/cate');
        //$this->success('操作成功', '/admin/cate');
        /*if (false == $request) {
            // 验证失败 输出错误信息
            $this->error($CategoryM->getError());
        } else {
            $this->success('操作成功', '/admin/cate');
        }*/
    }

    /**
     * 删除指定资源
     *
     * @param  int $id
     * @return \think\Response
     */
    public function delete($id)
    {
        //查询该栏目下是否有文章，有的话不能删除
        if (Article::get(['cateid' => $id])) {
            $res['status'] = '2';
            $res['msg'] = '请先删除子类在进行操作';
        } else {
            if (Category::where('cid', $id)->delete()) {
                $res['status'] = '1';
                $res['msg'] = '删除成功';
            } else {
                $res['status'] = '0';
                $res['msg'] = '删除失败';
            }
        };
        return $res;
    }
}
